﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Quizgame
{
    public partial class Formcauhoide : Form
    {
        public Formcauhoide()
        {
            InitializeComponent();
        }
        string strConn = @"Server=localhost; Database=Quiz; Integrated Security=True";
        SqlConnection conn;

        // Khai báo và khởi tạo đối tượng ràng buộc dữ liệu
        BindingSource bs = new BindingSource();
        private void Formcauhoide_Load(object sender, EventArgs e)
        {
            conn = new SqlConnection(strConn);

            // Lấy về dữ liệu dạng DataTable
            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM CauHoide", conn);
            DataTable dt = new DataTable();
            da.Fill(dt);

            // Ràng buộc dữ liệu vào BindingSource
            bs.DataSource = dt;

            // Gán nguồn dữ liệu cho DataGridView
            db_cauhoi.DataSource = bs;
        }

        private void btn_add_Click(object sender, EventArgs e)
        {
            if (conn.State == ConnectionState.Closed)
                conn.Open();

            SqlCommand cmd = new SqlCommand("INSERT INTO CauHoide VALUES(N'" + txt_cauhoi.Text + "', N'" + txt_dapan1.Text + "', N'" + txt_dapan2.Text + "', N'" + txt_dapan3.Text + "', N'" + txt_dapan4.Text + "', N'" + cb_dapan.Text + "')", conn);
            int count = cmd.ExecuteNonQuery();

            if (count > 0)
            {
                DataTable dt = (DataTable)bs.DataSource;
                DataRow row = dt.NewRow();
                row["Hoi"] = txt_cauhoi.Text;
                row["A"] = txt_dapan1.Text;
                row["B"] = txt_dapan2.Text;
                row["C"] = txt_dapan3.Text;
                row["D"] = txt_dapan4.Text;
                row["Dung"] = cb_dapan.Text;
                dt.Rows.Add(row);

                MessageBox.Show("Thêm mới thành công");

                //LoadData();   // Không gọi hàm này nữa


            }
            else MessageBox.Show("Không thể thêm mới");
        }

        private void btn_sua_Click(object sender, EventArgs e)
        {
            if (conn.State == ConnectionState.Closed)
                conn.Open();

            int id = (int)db_cauhoi.CurrentRow.Cells["Column1"].Value;
            SqlCommand cmd = new SqlCommand("UPDATE CauHoide Set Hoi = N'" + txt_cauhoi.Text + "', A = N'" + txt_dapan1.Text + "', B = N'" + txt_dapan2.Text + "', C = N'" + txt_dapan3.Text + "', D = N'" + txt_dapan4.Text + "',Dung = N'" + cb_dapan.Text + "' WHERE STT = " + id, conn);

            int count = cmd.ExecuteNonQuery();

            if (count > 0)
            {
                DataRowView row = (DataRowView)bs.Current; // Hàng chọn hiện thời
                row["Hoi"] = txt_cauhoi.Text;
                row["A"] = txt_dapan1.Text;
                row["B"] = txt_dapan2.Text;
                row["C"] = txt_dapan3.Text;
                row["D"] = txt_dapan4.Text;
                bs.ResetCurrentItem();

                MessageBox.Show("Sửa thành công!");
                // LoadData();

            }
            else MessageBox.Show("Không sửa được!");
        }

        private void btn_del_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bạn có chắc chắn muốn xóa câu hỏi đang chọn không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                if (conn.State == ConnectionState.Closed)
                    conn.Open();

                int id = (int)db_cauhoi.CurrentRow.Cells["Column1"].Value;
                SqlCommand cmd = new SqlCommand("Delete CauHoide WHERE STT = " + id, conn);

                int count = cmd.ExecuteNonQuery();

                if (count > 0)
                {
                    DataRowView row = (DataRowView)bs.Current; // Hàng chọn hiện thời
                    row.Delete();

                    MessageBox.Show("Xóa thành công!");
                    // LoadData();


                }
                else MessageBox.Show("Không thể xóa câu hỏi!");
            }
        }

        private void db_cauhoi_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
            {
                txt_cauhoi.Text = Convert.ToString(db_cauhoi.CurrentRow.Cells["Column2"].Value);
                txt_dapan1.Text = Convert.ToString(db_cauhoi.CurrentRow.Cells["Column3"].Value);
                txt_dapan2.Text = Convert.ToString(db_cauhoi.CurrentRow.Cells["Column4"].Value);
                txt_dapan3.Text = Convert.ToString(db_cauhoi.CurrentRow.Cells["Column5"].Value);
                txt_dapan4.Text = Convert.ToString(db_cauhoi.CurrentRow.Cells["Column6"].Value);
                cb_dapan.Text = Convert.ToString(db_cauhoi.CurrentRow.Cells["Column7"].Value);
            }
        }

        private void btn_exit_Click(object sender, EventArgs e)
        {
            Formcauhoi frm = new Formcauhoi();
            this.Visible = false;
            frm.ShowDialog();
            
            this.Close();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            txt_cauhoi.Text = txt_dapan1.Text = txt_dapan2.Text = txt_dapan3.Text = txt_dapan4.Text = cb_dapan.Text = "";
        }
        
    
    }
}
